home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 October: Mac OS SDK / Dev.CD Oct 00 SDK1.toast / Development Kits / Cross Platform / QuickTime 4.1.2 Windows SDK / CIncludes / TSMTE.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-04-12  |  5.5 KB  |  194 lines  |  [TEXT/R*ch]

  1. /*
  2.      File:        TSMTE.h
  3.  
  4.      Contains:    Text Services Managerfor TextEdit Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    QuickTime 4.1
  8.  
  9.      Copyright:    (c)1991-1999 Apple Technology, Inc. All rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __TSMTE__
  18. #define __TSMTE__
  19.  
  20. #ifndef __TEXTEDIT__
  21.     #include <TextEdit.h>
  22. #endif
  23.  
  24. #ifndef __DIALOGS__
  25.     #include <Dialogs.h>
  26. #endif
  27.  
  28. #ifndef __APPLEEVENTS__
  29.     #include <AppleEvents.h>
  30. #endif
  31.  
  32. #ifndef __TEXTSERVICES__
  33.     #include <TextServices.h>
  34. #endif
  35.  
  36.  
  37.  
  38.  
  39.  
  40. #if PRAGMA_ONCE
  41. #pragma once
  42. #endif
  43.  
  44. #ifdef __cplusplus
  45. extern "C" {
  46. #endif
  47.  
  48. #if PRAGMA_IMPORT
  49. #pragma import on
  50. #endif
  51.  
  52. #if PRAGMA_STRUCT_ALIGN
  53.     #pragma options align=mac68k
  54. #elif PRAGMA_STRUCT_PACKPUSH
  55.     #pragma pack(push, 2)
  56. #elif PRAGMA_STRUCT_PACK
  57.     #pragma pack(2)
  58. #endif
  59.  
  60. /* signature, interface types*/
  61. enum {
  62.     kTSMTESignature                = FOUR_CHAR_CODE('tmTE'),
  63.     kTSMTEInterfaceType            = FOUR_CHAR_CODE('tmTE'),
  64.     kTSMTEDialog                = FOUR_CHAR_CODE('tmDI')
  65. };
  66.  
  67.  
  68. /* update flag for TSMTERec*/
  69. enum {
  70.     kTSMTEAutoScroll            = 1
  71. };
  72.  
  73.  
  74. /* callback procedure definitions*/
  75.  
  76. typedef CALLBACK_API( void , TSMTEPreUpdateProcPtr )(TEHandle textH, long refCon);
  77. typedef CALLBACK_API( void , TSMTEPostUpdateProcPtr )(TEHandle textH, long fixLen, long inputAreaStart, long inputAreaEnd, long pinStart, long pinEnd, long refCon);
  78. typedef STACK_UPP_TYPE(TSMTEPreUpdateProcPtr)                     TSMTEPreUpdateUPP;
  79. typedef STACK_UPP_TYPE(TSMTEPostUpdateProcPtr)                     TSMTEPostUpdateUPP;
  80.  
  81.  
  82. /* data types*/
  83.  
  84. struct TSMTERec {
  85.     TEHandle                         textH;
  86.     TSMTEPreUpdateUPP                 preUpdateProc;
  87.     TSMTEPostUpdateUPP                 postUpdateProc;
  88.     long                             updateFlag;
  89.     long                             refCon;
  90. };
  91. typedef struct TSMTERec                    TSMTERec;
  92. typedef TSMTERec *                        TSMTERecPtr;
  93. typedef TSMTERecPtr *                    TSMTERecHandle;
  94. #if !OPAQUE_TOOLBOX_STRUCTS
  95.  
  96. struct TSMDialogRecord {
  97.     DialogRecord                     fDialog;
  98.     TSMDocumentID                     fDocID;
  99.     TSMTERecHandle                     fTSMTERecH;
  100.     long                             fTSMTERsvd[3];                /* reserved*/
  101. };
  102. typedef struct TSMDialogRecord            TSMDialogRecord;
  103.  
  104. typedef TSMDialogRecord *                TSMDialogPtr;
  105. typedef TSMDialogPtr                     TSMDialogPeek;
  106. #endif  /* !OPAQUE_TOOLBOX_STRUCTS */
  107.  
  108. #if OPAQUE_UPP_TYPES
  109.     EXTERN_API(TSMTEPreUpdateUPP)
  110.     NewTSMTEPreUpdateUPP           (TSMTEPreUpdateProcPtr    userRoutine);
  111.  
  112.     EXTERN_API(TSMTEPostUpdateUPP)
  113.     NewTSMTEPostUpdateUPP           (TSMTEPostUpdateProcPtr    userRoutine);
  114.  
  115.     EXTERN_API(void)
  116.     DisposeTSMTEPreUpdateUPP       (TSMTEPreUpdateUPP        userUPP);
  117.  
  118.     EXTERN_API(void)
  119.     DisposeTSMTEPostUpdateUPP       (TSMTEPostUpdateUPP        userUPP);
  120.  
  121.     EXTERN_API(void)
  122.     InvokeTSMTEPreUpdateUPP           (TEHandle                textH,
  123.                                     long                    refCon,
  124.                                     TSMTEPreUpdateUPP        userUPP);
  125.  
  126.     EXTERN_API(void)
  127.     InvokeTSMTEPostUpdateUPP       (TEHandle                textH,
  128.                                     long                    fixLen,
  129.                                     long                    inputAreaStart,
  130.                                     long                    inputAreaEnd,
  131.                                     long                    pinStart,
  132.                                     long                    pinEnd,
  133.                                     long                    refCon,
  134.                                     TSMTEPostUpdateUPP        userUPP);
  135.  
  136. #else
  137.     enum { uppTSMTEPreUpdateProcInfo = 0x000003C0 };                 /* pascal no_return_value Func(4_bytes, 4_bytes) */
  138.     enum { uppTSMTEPostUpdateProcInfo = 0x000FFFC0 };                 /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  139.     #define NewTSMTEPreUpdateUPP(userRoutine)                         (TSMTEPreUpdateUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTSMTEPreUpdateProcInfo, GetCurrentArchitecture())
  140.     #define NewTSMTEPostUpdateUPP(userRoutine)                         (TSMTEPostUpdateUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTSMTEPostUpdateProcInfo, GetCurrentArchitecture())
  141.     #define DisposeTSMTEPreUpdateUPP(userUPP)                         DisposeRoutineDescriptor(userUPP)
  142.     #define DisposeTSMTEPostUpdateUPP(userUPP)                         DisposeRoutineDescriptor(userUPP)
  143.     #define InvokeTSMTEPreUpdateUPP(textH, refCon, userUPP)         CALL_TWO_PARAMETER_UPP((userUPP), uppTSMTEPreUpdateProcInfo, (textH), (refCon))
  144.     #define InvokeTSMTEPostUpdateUPP(textH, fixLen, inputAreaStart, inputAreaEnd, pinStart, pinEnd, refCon, userUPP)  CALL_SEVEN_PARAMETER_UPP((userUPP), uppTSMTEPostUpdateProcInfo, (textH), (fixLen), (inputAreaStart), (inputAreaEnd), (pinStart), (pinEnd), (refCon))
  145. #endif
  146. /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  147. #define NewTSMTEPreUpdateProc(userRoutine)                         NewTSMTEPreUpdateUPP(userRoutine)
  148. #define NewTSMTEPostUpdateProc(userRoutine)                     NewTSMTEPostUpdateUPP(userRoutine)
  149. #define CallTSMTEPreUpdateProc(userRoutine, textH, refCon)        InvokeTSMTEPreUpdateUPP(textH, refCon, userRoutine)
  150. #define CallTSMTEPostUpdateProc(userRoutine, textH, fixLen, inputAreaStart, inputAreaEnd, pinStart, pinEnd, refCon) InvokeTSMTEPostUpdateUPP(textH, fixLen, inputAreaStart, inputAreaEnd, pinStart, pinEnd, refCon, userRoutine)
  151. #if ACCESSOR_CALLS_ARE_FUNCTIONS
  152. EXTERN_API( Boolean )
  153. IsTSMTEDialog                    (DialogPtr                 dialog);
  154.  
  155. /* Getters */
  156. EXTERN_API( TSMDocumentID )
  157. GetTSMTEDialogDocumentID        (DialogPtr                 dialog);
  158.  
  159. EXTERN_API( TSMTERecHandle )
  160. GetTSMTEDialogTSMTERecHandle    (DialogPtr                 dialog);
  161.  
  162. /* Setters */
  163. EXTERN_API( void )
  164. SetTSMTEDialogDocumentID        (DialogPtr                 dialog,
  165.                                  TSMDocumentID             documentID);
  166.  
  167. EXTERN_API( void )
  168. SetTSMTEDialogTSMTERecHandle    (DialogPtr                 dialog,
  169.                                  TSMTERecHandle         tsmteRecHandle);
  170.  
  171. #endif  /* ACCESSOR_CALLS_ARE_FUNCTIONS */
  172.  
  173.  
  174. #if PRAGMA_STRUCT_ALIGN
  175.     #pragma options align=reset
  176. #elif PRAGMA_STRUCT_PACKPUSH
  177.     #pragma pack(pop)
  178. #elif PRAGMA_STRUCT_PACK
  179.     #pragma pack()
  180. #endif
  181.  
  182. #ifdef PRAGMA_IMPORT_OFF
  183. #pragma import off
  184. #elif PRAGMA_IMPORT
  185. #pragma import reset
  186. #endif
  187.  
  188. #ifdef __cplusplus
  189. }
  190. #endif
  191.  
  192. #endif /* __TSMTE__ */
  193.  
  194.